<?php
/**
  * Klasse View
  * @param   :
  *
  * @info    : Steuert die Views (Templates)
  *
  * @e.datum : 05.12.2010
  * @l.datum : 30.12.2010
  * @version : beta
 **/

class View{

  private $path = 'templates';      // Pfad zum Template
  private $template = 'default';    // Name des Templates, in dem Fall das Standardtemplate.

  /**
   * Enthält die Variablen, die in das Template eingebetet werden sollen.
  **/
  private $_ = array();


  /**
   * Ordnet eine Variable einem bestimmten Schlüssel zu.
   * @param String $key Schlüssel, String $value Variable
  **/
  public function assign($key, $value){
    $this->_[$key] = $value;
  }


  /**
   * Setzt den Namen des Templates.
   * @param String $template Name des Templates.
  **/
  public function setTemplate($template = 'default'){
    $this->template = $template;
  }


  /**
   * Das Template-File laden und zurückgeben
   * @param string $tpl Der Name des Template-Files (falls es nicht vorher über steTemplate() zugewiesen wurde).
   * @return string Der Output des Templates.
  **/
  public function loadTemplate(){
    $tpl = $this->template;
    $file = $this->path . DIRECTORY_SEPARATOR . $tpl . '.php';  // Pfad zum Template erstellen & überprüfen ob das Template existiert.
    $exists = file_exists($file);

    if ($exists){     
      ob_start();                         // Der Output des Scripts wird n einen Buffer gespeichert, d.h. nicht gleich ausgegeben.
 
      include $file;                      // Das Template-File wird eingebunden und dessen Ausgabe in $output gespeichert.

      $output = ob_get_contents();

      ob_end_clean();

      return $output;                     // Output zurückgeben.
    } else {
      return 'could not find template';   // Template-File existiert nicht-> Fehlermeldung.
    }
  }
}
?>